home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / bgui12.lha / Classes / PopButtonClass / popbuttonclass.h < prev    next >
C/C++ Source or Header  |  1995-08-18  |  2KB  |  71 lines

  1. #ifndef POPBUTTONCLASS_H
  2. #define POPBUTTONCLASS_H
  3. /*
  4. **    $VER: popbuttonclass.h 1.1 (18.8.95)
  5. **    C Header for the BOOPSI popup-menu button class.
  6. **
  7. **    (C) Copyright 1995 Jaba Development.
  8. **    (C) Copyright 1995 Jan van den Baard.
  9. **        All Rights Reserved.
  10. **/
  11.  
  12. #ifndef EXEC_TYPES_H
  13. #include <exec/types.h>
  14. #endif
  15.  
  16. #ifndef INTUITION_CLASSES_H
  17. #include <intuition/classes.h>
  18. #endif
  19.  
  20. #ifndef UTILITY_TAGITEM_H
  21. #include <utility/tagitem.h>
  22. #endif
  23.  
  24. /*
  25. **    An array of these structures define
  26. **    the menu labels.
  27. **/
  28. struct PopMenu {
  29.     UBYTE               *pm_Label;        /* Menu text, NULL terminates array. */
  30.     UWORD            pm_Flags;        /* See below. */
  31.     ULONG            pm_MutualExclude;    /* Mutual-exclusion. */
  32. };
  33.  
  34. /* Flags */
  35. #define PMF_CHECKIT        (1<<0)            /* Checkable (toggle) item. */
  36. #define PMF_CHECKED        (1<<1)            /* The item is checked. */
  37.  
  38. /*
  39. **    Special menu entry.
  40. **/
  41. #define PMB_BARLABEL        ( UBYTE * )~0
  42.  
  43. /* Tags */
  44. /*
  45. **    All labelclass attributes are usable at create time (I).
  46. **    The vectorclass attributes are usable at create time and
  47. **    with OM_SET (IS).
  48. **/
  49. #define PMB_Image        TAG_USER+0x70021    /* IS--- */
  50. #define PMB_MenuEntries         TAG_USER+0x70022    /* IS--- */
  51. #define PMB_MenuNumber        TAG_USER+0x70023    /* --GN- */
  52. #define PMB_PopPosition         TAG_USER+0x70024    /* I---- */
  53.  
  54. /* TAG_USER+0x70025 through TAG_USER+0x70040 reserved. */
  55.  
  56. /* Methods */
  57. #define PMBM_CHECK_STATUS    0x70000
  58. #define PMBM_CHECK_MENU         0x70001
  59. #define PMBM_UNCHECK_MENU    0x70002
  60.  
  61. struct pmbmCommand {
  62.     ULONG            MethodID;
  63.     ULONG            pmbm_MenuNumber;    /* Menu to do it on. */
  64. };
  65.  
  66. /* Prototypes */
  67. Class *InitPMBClass( void );
  68. BOOL FreePMBClass( Class * );
  69.  
  70. #endif
  71.